//用户路由模块
const express = require('express')
    //创建路由对象
const router = express.Router();
//登录接口
const db = require('../db/index')
    // 导入加密密码包
const bcrypt = require('bcryptjs');

//密码的验证规则
const joi = require('@hapi/joi')
    //导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
const username = joi.string().alphanum().min(3).max(10).required()
const password = joi
    .string()
    .pattern(/^[\S]{6,12}$/)
    .required()
    //登陆表单的验证规则对象
const login_schema = {
    //表示需要对 req.body 中的数据进行验证
    body: {
        username,
        password,
    }
}
router.post('/login', expressJoi(login_schema), (req, res) => {
        //加密密码
        // console.log(bcrypt.hashSync("123456", 10));
        // console.log(req.body);
        //1.检测表单数据是否合法
        // if (req.body.username == '' && req.body.password == '') {
        //     return res.ResData('用户名和密码不能为空')

        // }
        //2.根据用户名查询用户数据
        const userinfo = req.body;
        const sql = `select * from sp_manager where mg_name=?`
        db.query(sql, userinfo.username, (err, result) => {


            if (err) {
                return res.ResData(err.message);

            }
            if (result.length !== 1) {
                return res.ResData('用户名错误')

            }
            //3.判断密码和数据库里面的密码进行比较
            const compareResult = bcrypt.compareSync(userinfo.password, result[0].mg_pwd);
            if (!compareResult) return res.ResData("密码错误");
            // res.send("登陆成功")
            const data = {
                "data": {
                    "id": result[0].mg_id,
                    "rid": result[0].role_id,
                    "username": result[0].mg_name,
                    "mobile": result[0].mg_mobile,
                    "email": result[0].mg_email
                },

            }
            res.ResData("登陆成功", 200, data);
        })


        // 4.生成token字符串

        // res.send("登录")
    })
    //将路由对象共享出去
module.exports = router